Image compression allows the downsizing of an electronic image for more compact transmission or storage. Image compression may be lossless or lossy. Lossless compression allows for the image to be fully reconstructed after compression so that the reconstructed image is identical to the original image, whereas lossy compression results in a reconstructed image that is not identical to the original image.
One advantage of lossy compression is that it may create a smaller compressed file than lossless compression. However, a disadvantage of lossy compression may be a loss of detail in the resulting decompressed image, particularly details in the contour and edge regions of the image.
One approach to lossy compression is known as vector quantization, and involves mapping image data to a set of scalar indices, thereby allowing the quantization of an input file by reducing a set of input vectors to a smaller set of output indices. A vector quantization encoder partitions a group of vectors into codewords that correspond to indices in a codebook, and transmits those indices to the decoder. The decoder then references the codebook and extracts the data that corresponds to the received indices, which allows the reconstruction of the image, with some lost information due to the quantization process.
A variation on vector quantization called interpolative vector quantization (IVQ) introduces dimension reduction such that the codebook in the encoder is learned on down-sampled vectors and the codebook in the decoder on high-dimension vectors. Further, in some implementations, IVQ may be utilized with a codebook learned by the decoder. This may allow the decompression of images compressed by a variety of encoders, as the decoder may operates independently from the encoder with respect to the codebook used.